<%#
<!-- Copyright (C) 2020  Matthew "strager" Glazar -->
<!-- See end of file for extended copyright information. -->
%>

<script>
  //<%
  let ejs = await import("ejs");
  let path = await import("path");
  let url = await import("url");
  let { html } = await import(url.pathToFileURL("../src/html-tag.mjs"));

  function makeRelativeURI(uri) {
    if (/^\w+:/.test(uri)) {
      return uri;
    }
    return path.posix.relative(currentURI, uri) + "/";
  }

  let navigationPages = [
    {
      uri: "/install/",
      title: "Install",
      subpages: [{ uri: "/releases/", title: "Releases" }],
    },
    { uri: "/demo/", title: "Try online" },
    {
      uri: "/docs/",
      title: "Docs",
      subpages: [
        { uri: "/errors/", title: "Errors" },
        { uri: "/cli/", title: "CLI" },
        { uri: "/config/", title: "Config" },
      ],
    },
    { uri: "/benchmarks/", title: "Benchmarks" },
    {
      uri: "https://github.com/quick-lint/quick-lint-js",
      title: "Code on GitHub",
    },
    { uri: "/contact/", title: "Contact" },
  ];

  function pageLinkHTML(page) {
    let titleHTML = ejs.escapeXML(page.title);
    if (page.uri === currentURI) {
      return html`<li><span class="current-page">${titleHTML}</span></li>`;
    } else {
      return html`<li>
        <a href="${ejs.escapeXML(makeRelativeURI(page.uri))}">${titleHTML}</a>
      </li>`;
    }
  }
  //%>
</script>

<nav>
  <ul>
    <% if (currentURI !== "/") { %>
    <li class="side-bar-only">
      <a href="<%= makeRelativeURI('/') %>">Home</a>
    </li>
    <% } %> <% for (let page of navigationPages) { %> <% if (page.subpages) { %>
    <li>
      <%- pageLinkHTML(page).replace("<" + "/li>", "") %> <% if (page.uri ===
      currentURI || page.subpages.some(subpage => subpage.uri === currentURI)) {
      %>
      <ul>
        <% for (let subpage of page.subpages) { %> <%- pageLinkHTML(subpage) %>
        <% } %>
      </ul>
      <% } %>
    </li>
    <% } else { %> <%- pageLinkHTML(page) %> <% } %> <% } %>
  </ul>
</nav>

<%#
<!--
quick-lint-js finds bugs in JavaScript programs.
Copyright (C) 2020  Matthew "strager" Glazar

This file is part of quick-lint-js.

quick-lint-js is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

quick-lint-js is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with quick-lint-js.  If not, see <https://www.gnu.org/licenses/>.
-->
%>
